﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DBUtils;

public partial class CheckLeave_Summary : System.Web.UI.Page
{
    DataSet dsDept;//公司所有部门
    DataSet dsResult;//保存查询到的信息
    int iDeptID;//当前选中的部门ID

    /// <summary>
    /// 网页初始化时执行该方法。设置控件属性，获取员工编号信息和员工其他信息。
    /// 该过程调用 Employee.GetEmployeeInfo(iEmpID, emp) 函数，
    /// 从数据库中获取员工的其他信息。该过程还调用 Employee.GetCEOInfo(iCEOID) 函数，
    /// 从数据库中获取总经理的员工编号。该过程还调用 CheckLvReq.GetDeptList(dsDept) 函数，
    /// 从数据库中获取所有部门的列表。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int ceo = 0;
            bool isAdmin = true;//是否有权限
            if (isAdmin)//如果有权限
            {

                //绑定部门列表
                int ok = CheckLvReq.GetDeptList(ref dsDept);
                cmbDeptList.DataSource = dsDept.Tables[0];
                cmbDeptList.DataTextField = dsDept.Tables[0].Columns[1].ToString();
                cmbDeptList.DataValueField = dsDept.Tables[0].Columns[0].ToString();
                cmbDeptList.DataBind();
                if (Employee.GetCEOInfo(ref ceo) == 1) //判断当前用户是否是CEO
                {
                    if (ceo == Convert.ToInt32(Session["EmployeeID"]))//如果当前登陆的是CEO
                    {
                        Panel2.Visible = true;

                        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
                    }
                    else
                    {
                        Employee emp = new Employee();
                        Employee.GetEmployeeInfo(Convert.ToInt32(Session["EmployeeID"]), emp);
                        cmbDeptList.SelectedValue = emp.DeptID.ToString();//设置部门号
                        Panel1.Visible = false;
                      
                    }
                }
            }
            else//如果没有权限
            {

            }
        }
    }

    /// <summary>
    /// 当用户单击“搜索”按钮时，该方法将检索数据库中的部门汇总信息并以 DataGrid 的形式显示返回结果。
    /// 该过程调用 CheckLvReq.DeptSummary(CInt(lblDeptID.Text), txtStartTime.Text.Trim, txtEndTime.Text.Trim, dsResult) 
    /// 函数，从数据库中检索该部门该段时间内的部门汇总信息
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        dsResult = new DataSet();
        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
        if (CheckLvReq.DeptSummary(iDeptID, txtStartTime.Text.Trim(), txtEndTime.Text.Trim(), ref dsResult) == 1)
        {
            grdResult.DataSource = dsResult.Tables[0];
            grdResult.DataBind();
            grdResult.Visible = true;
        }
        else
        {
            this.Response.Write("<script>alert('" + "查询信息失败" + "');</script>");//弹出失败信息
        }
    }

    /// <summary>
    /// 当用户更改选中部门时，该方法更新已保存的部门编号。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void cmbDeptList_SelectedIndexChanged(object sender, EventArgs e)
    {
        iDeptID = Convert.ToInt32(cmbDeptList.SelectedValue);
    }

    /// <summary>
    /// 当用户单击 DataGrid 中的“进入”链接时，该方法将网页跳转到“员工查询网页”来显示该员工请假明细。
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void grdResult_RowCommand(object sender, GridViewCommandEventArgs e)
    {

    }
}
